package com.edu.d1_static;

public class StaticDemo {
    public static void main(String[] args) {
        //Max(age1,age2);————————错误书写，静态方法不能直接访问实例成员
        System.out.println(User.num);
        StaticDemo demo = new StaticDemo();
        System.out.println(Max(demo.age1, demo.age2));
        //实例方法直接访问静态变量和实例变量
        demo.name="猪八戒";
        demo.study();
    }
    //static使用的注意事项
    public static int num=10000;
    private int age1=100;
    private int age2=200;
    private String name;
    //1、静态方法只能访问静态成员，不能够直接访问实例成员，但也能够通过对象来间接访问
    public static int Max(int age1,int age2){
        //可以直接访问静态成员
        System.out.println(num);//或者这样写————System.out.println(StaticDemo.num);
        //不可以直接访问实例成员
        //System.out.println(name);——————————错误书写方法
        //但能够通过对象来间接访问
        return age1>age2?age1:age2;
    }
    //2、实例方法既能访问静态成员，也能访问实例成员
    public void study(){
        System.out.println(name+"好好学习"+num);
    }
    //3、staitic修饰的静态方法当中，不能使用this
/*    public static int Max1(int age1,int age2){
        System.out.println(num);
        System.out.println(this.age1);——————————this代表当前对象的地址，不能在静态方法中使用this关键字
        return age1>age2?age1:age2;
    }*/
}
